import java.util.HashSet;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-08-04
 * Time: 23:23
 */
//https://leetcode.cn/problems/contains-duplicate-ii/
//给你一个整数数组 nums 和一个整数 k ，判断数组中是否存在两个 不同的索引 i 和 j ，
// 满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在，返回 true ；否则，返回 false 。
public class TEST {
    public static boolean containsNearbyDuplicate(int[] arr, int k) {
        HashSet set=new HashSet();
        int i=0;
        for( i=0 ; i<k&&i<arr.length ; i++){
            if(set.contains(arr[i])){
                return true;
            }
            else{
                set.add(arr[i]);
            }
        }
        for(i=k;i<arr.length;i++){
            if(set.contains(arr[i])){
                return true;
            }
            else{
                set.add(arr[i]);
                set.remove(arr[i-k]);
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] arr={1,2,3,1,2,3};
        System.out.println(containsNearbyDuplicate(arr,2));
    }

}
